🎖️GitЯра🎖️
src/helpers/SimpleMeshTables.h 890a2e2cffa98dea3ca88db3c3aba72ef23ff3f7 (890a2e2c) Text, 1.91 KB
Tff7b72#Tff7b72pragma once
Tff7b72#Tff7b72include T8b949e<Mesh.h>
Tff7b72#Tff7b72ifdef ESP32
Tff7b72#Tff7b72include T8b949e<FS.h>
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72define MAX_PACKET_HASHES (128+32)
Te6edf3class Te6edf3SimpleMeshTables Tff7b72: Te6edf3public Te6edf3meshTff7b72:Tff7b72:Te6edf3MeshTables Tb4b4b4{
Tffa657uint8_t Te6edf3_hashesTb4b4b4[Te6edf3MAX_PACKET_HASHESTff7b72*Te6edf3MAX_HASH_SIZETb4b4b4]Tb4b4b4;
Tffa657int Te6edf3_next_idxTb4b4b4;
Tffa657uint32_t Te6edf3_direct_dupsTb4b4b4, Te6edf3_flood_dupsTb4b4b4;
Te6edf3publicTff7b72:
Te6edf3SimpleMeshTablesTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3memsetTb4b4b4(Te6edf3_hashesTb4b4b4, T79c0ff0Tb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3_hashesTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3_next_idx Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3_direct_dups Tff7b72= Te6edf3_flood_dups Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72ifdef ESP32
Tffa657void Te6edf3restoreFromTb4b4b4(Te6edf3File Te6edf3fTb4b4b4) Tb4b4b4{
Te6edf3fTb4b4b4.Te6edf3readTb4b4b4(Te6edf3_hashesTb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3_hashesTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3fTb4b4b4.Te6edf3readTb4b4b4(Tb4b4b4(Tffa657uint8_t Tff7b72*Tb4b4b4) Tff7b72&Te6edf3_next_idxTb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3_next_idxTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tffa657void Te6edf3saveToTb4b4b4(Te6edf3File Te6edf3fTb4b4b4) Tb4b4b4{
Te6edf3fTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3_hashesTb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3_hashesTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3fTb4b4b4.Te6edf3writeTb4b4b4(Tb4b4b4(Tff7b72const Tffa657uint8_t Tff7b72*Tb4b4b4) Tff7b72&Te6edf3_next_idxTb4b4b4, Tff7b72sizeofTb4b4b4(Te6edf3_next_idxTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72#Tff7b72endif
Tffa657bool Te6edf3wasSeenTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4) Te6edf3override Tb4b4b4{
Tffa657uint8_t Te6edf3hashTb4b4b4[Te6edf3MAX_HASH_SIZETb4b4b4]Tb4b4b4;
Te6edf3packetTff7b72-Tff7b72>Te6edf3calculatePacketHashTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4;
Tff7b72const Tffa657uint8_tTff7b72* Te6edf3sp Tff7b72= Te6edf3_hashesTb4b4b4;
Tff7b72for Tb4b4b4(Tffa657int Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3MAX_PACKET_HASHESTb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4, Te6edf3sp Tff7b72+Tff7b72= Te6edf3MAX_HASH_SIZETb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3memcmpTb4b4b4(Te6edf3hashTb4b4b4, Te6edf3spTb4b4b4, Te6edf3MAX_HASH_SIZETb4b4b4) Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3packetTff7b72-Tff7b72>Te6edf3isRouteDirectTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3_direct_dupsTff7b72+Tff7b72+Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3_flood_dupsTff7b72+Tff7b72+Tb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657trueTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tffa657falseTb4b4b4;
Tb4b4b4}
Tffa657void Te6edf3markSeenTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4) Te6edf3override Tb4b4b4{
Tffa657uint8_t Te6edf3hashTb4b4b4[Te6edf3MAX_HASH_SIZETb4b4b4]Tb4b4b4;
Te6edf3packetTff7b72-Tff7b72>Te6edf3calculatePacketHashTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4;
Te6edf3memcpyTb4b4b4(Tff7b72&Te6edf3_hashesTb4b4b4[Te6edf3_next_idx Tff7b72* Te6edf3MAX_HASH_SIZETb4b4b4]Tb4b4b4, Te6edf3hashTb4b4b4, Te6edf3MAX_HASH_SIZETb4b4b4)Tb4b4b4;
Te6edf3_next_idx Tff7b72= Tb4b4b4(Te6edf3_next_idx Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72% Te6edf3MAX_PACKET_HASHESTb4b4b4;
Tb4b4b4}
Tffa657void Te6edf3clearTb4b4b4(Tff7b72const Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4) Te6edf3override Tb4b4b4{
Tffa657uint8_t Te6edf3hashTb4b4b4[Te6edf3MAX_HASH_SIZETb4b4b4]Tb4b4b4;
Te6edf3packetTff7b72-Tff7b72>Te6edf3calculatePacketHashTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4;
Tffa657uint8_tTff7b72* Te6edf3sp Tff7b72= Te6edf3_hashesTb4b4b4;
Tff7b72for Tb4b4b4(Tffa657int Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3MAX_PACKET_HASHESTb4b4b4; Te6edf3iTff7b72+Tff7b72+Tb4b4b4, Te6edf3sp Tff7b72+Tff7b72= Te6edf3MAX_HASH_SIZETb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3memcmpTb4b4b4(Te6edf3hashTb4b4b4, Te6edf3spTb4b4b4, Te6edf3MAX_HASH_SIZETb4b4b4) Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3memsetTb4b4b4(Te6edf3spTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3MAX_HASH_SIZETb4b4b4)Tb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tffa657uint32_t Te6edf3getNumDirectDupsTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3_direct_dupsTb4b4b4; Tb4b4b4}
Tffa657uint32_t Te6edf3getNumFloodDupsTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3_flood_dupsTb4b4b4; Tb4b4b4}
Tffa657void Te6edf3resetStatsTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3_direct_dups Tff7b72= Te6edf3_flood_dups Tff7b72= T79c0ff0Tb4b4b4; Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Served by rngit 1.5.0 - Generated in 0.08s